/*
 * Ajax
 * author: zjc
 * time: 2021.01.10
 */


/**
 * 引入配置
 */
var Config = require('../config/index.js')


var ajax_base = wxPromisify(wx.request)

/**
 * 设置ajax
 * @param {*} obj
 * @returns function
 */
function ajax(obj) {
    // 可加 全局参数 请求 验证参数等
    console.log(`请求url：${obj.url}`)
    console.log(`请求参数：${obj.data}`)
    return ajax_base(obj)
}


function wxPromisify(fn) {
    return function(obj = {}) {
        // obj.url = Config.postUrl + obj.url
        obj.method = obj.method||'POST'
        if (obj.isLoading) {
            wx.showLoading({
                title: obj.loadingText || '请求中...',
                mask: true
            })
        }

        return new Promise((resolve, reject) => {
            obj.success = function(res) {
                // console.log('接口请求成功', res)
                resolve(res.data)
            }

            obj.fail = function(res) {
                // console.log('接口请求错误', res)
                reject(res.data)
            }

            obj.complete = function(res) {
                console.log('接口请求完成', res)
                if (obj.isLoading) {
                    wx.hideLoading()
                }
                if(res.statusCode!=200){
                    wx.showModal({
                      title: '提示',
                      content: `接口返${res.statusCode},请稍后重试`,
                      showCancel: false,
                    })
                }
            }

            fn(obj)
        })
    }
}

module.exports = {
    ajax
}